<?php

namespace app\common\model\subject;

use think\Model;

// 引入软删除模型
use traits\model\SoftDelete;

class Subject extends Model
{

    // 调用软删除模型
    use SoftDelete;

    protected $name = 'subject';

    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = true;

    // 定义创建时间字段
    protected $createTime = 'createtime';

    // 定义更新时间字段 => false 禁用
    protected $updateTime = false;

    // 定义软删除字段
    protected $deleteTime = 'deletetime';


    // 追加数据表不存在的字段
    protected $append = [
        'thumb_cdn',
        'like_count',
        'createtime_text'
    ];

    /**
     * 课程封面图获取器
     * get字段名Attr
     */
    public function getThumbCdnAttr($value, $data)
    {
        // 获取当前域名
        $domain = request()->domain();

        // 获取封面图
        $thumb = !empty($data['thumbs']) ? $data['thumbs'] : '';

        if (!$thumb || !is_file('.' . $thumb)) {
            return $domain . '/assets/home/images/video.jpg';
        }

        return $domain . $thumb;
    }


    public function getLikeCountAttr($value, $data)
    {
        $likeStr = $data['likes'] ? $data['likes'] : 0;

        if (empty($likeStr)) {
            return 0;
        }

        $likeArr = explode(',', $likeStr);

        // 过滤数组的空元素
        $likeArr = array_filter($likeArr);

        return count($likeArr);
    }


    public function getCreateTimeTextAttr($value, $data)
    {

        $createTime = empty($data['createtime']) ? '' : $data['createtime'];

        if (empty($createTime)) {
            return '未知时间';
        }

        return date('Y-m-d', $createTime);
    }

    public function category()
    {
        return $this->belongsTo('app\common\model\subject\Category', 'cateid', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function teacher()
    {
        return $this->belongsTo('app\common\model\subject\Teacher', 'teacherid', 'id', [], 'LEFT')->setEagerlyType(0);
    }
}
